package com.campus.help.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.campus.help.entity.Secondhand;
import com.campus.help.vo.SecondhandVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;

/**
 * 二手商品Mapper接口
 *
 * @author campus-help
 * @since 2025-10-16
 */
@Mapper
public interface SecondhandMapper extends BaseMapper<Secondhand> {

    /**
     * 分页查询二手商品列表（包含类型和卖家信息）
     */
    Page<SecondhandVO> selectSecondhandListWithInfo(
            Page<SecondhandVO> page,
            @Param("keyword") String keyword,
            @Param("typeId") Long typeId,
            @Param("location") String location,
            @Param("minPrice") BigDecimal minPrice,
            @Param("maxPrice") BigDecimal maxPrice,
            @Param("condition") String condition,
            @Param("status") String status,
            @Param("schoolId") Long schoolId
    );

    /**
     * 根据ID查询二手商品详情（包含类型和卖家信息）
     */
    SecondhandVO selectSecondhandDetailById(@Param("id") Long id);

    /**
     * 增加浏览次数
     */
    void incrementViewCount(@Param("id") Long id);

    /**
     * 增加收藏次数
     */
    void incrementFavoriteCount(@Param("id") Long id);

    /**
     * 减少收藏次数
     */
    void decrementFavoriteCount(@Param("id") Long id);
}

